package com.example.lsrsbackend.model.view;

import com.example.lsrsbackend.model.Reservation;

import java.sql.Time;
import java.util.Date;

public class ReservationVO {

    private Long id;
    private Long seatId;
    private String seatNumber; // 关联查询
    private String username;
    private Date date;
    private Time startTime;
    private Time endTime;
    private Double durationHours;
    private Reservation.Status status;
    private Date actualCheckinTime;
    private Date actualCheckoutTime;
    private Integer extendCount;
    private Date createdAt;
    private Date updatedAt;

    // 前端展示字段
    private String statusText;
    private String dateText;
    private String timeRange;
    private Boolean canCancel;
    private Boolean canCheckIn;
    private Boolean canExtend;

    //getter and  setter

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getSeatId() {
        return seatId;
    }

    public void setSeatId(Long seatId) {
        this.seatId = seatId;
    }

    public String getSeatNumber() {
        return seatNumber;
    }

    public void setSeatNumber(String seatNumber) {
        this.seatNumber = seatNumber;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String  username) {
        this.username = username;
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    public Time getStartTime() {
        return startTime;
    }

    public void setStartTime(Time startTime) {
        this.startTime = startTime;
    }

    public Time getEndTime() {
        return endTime;
    }

    public void setEndTime(Time endTime) {
        this.endTime = endTime;
    }

    public Double getDurationHours() {
        return durationHours;
    }

    public void setDurationHours(Double durationHours) {
        this.durationHours = durationHours;
    }

    public Reservation.Status getStatus() {
        return status;
    }

    public void setStatus(Reservation.Status status) {
        this.status = status;
    }

    public Date getActualCheckinTime() {
        return actualCheckinTime;
    }

    public void setActualCheckinTime(Date actualCheckinTime) {
        this.actualCheckinTime = actualCheckinTime;
    }

    public Date getActualCheckoutTime() {
        return actualCheckoutTime;
    }

    public void setActualCheckoutTime(Date actualCheckoutTime) {
        this.actualCheckoutTime = actualCheckoutTime;
    }

    public Integer getExtendCount() {
        return extendCount;
    }

    public void setExtendCount(Integer extendCount) {
        this.extendCount = extendCount;
    }

    public Date getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    public Date getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    public String getStatusText() {
        return statusText;
    }

    public void setStatusText(String statusText) {
        this.statusText = statusText;
    }

    public String getDateText() {
        return dateText;
    }

    public void setDateText(String dateText) {
        this.dateText = dateText;
    }

    public String getTimeRange() {
        return timeRange;
    }

    public void setTimeRange(String timeRange) {
        this.timeRange = timeRange;
    }

    public Boolean getCanCancel() {
        return canCancel;
    }

    public void setCanCancel(Boolean canCancel) {
        this.canCancel = canCancel;
    }

    public Boolean getCanCheckIn() {
        return canCheckIn;
    }

    public void setCanCheckIn(Boolean canCheckIn) {
        this.canCheckIn = canCheckIn;
    }

    public Boolean getCanExtend() {
        return canExtend;
    }

    public void setCanExtend(Boolean canExtend) {
        this.canExtend = canExtend;
    }
}
